package com.css.zfzx.fwsjcj.modules.report.service;

import com.css.zfzx.fwsjcj.modules.analysis.vo.AnalysisQueryVo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface ExportReportService {
    /**
     * 生成普查报告
     * @param province
     * @param city
     * @param request
     * @param response
     */
    Integer exportReport(String province,String city,String area,String taskName,String timeStamp,HttpServletRequest request, HttpServletResponse response);

    /**
     * 柱状图-栋数
     */
    Map<String, Object> buildingNumData(AnalysisQueryVo analysisQueryVo);

    /**
     * 柱状图-面积
     */
    Map<String, Object> buildingAreaData(AnalysisQueryVo analysisQueryVo);


    /**
     * 城市饼状图-结构类型-栋数
     */
    List<Map> buildingCityNumDataByStructureType(AnalysisQueryVo analysisQueryVo);

    /**
     * 农村饼状图-结构类型-栋数
     */
    List<Map> buildingVillageNumDataByStructureType(AnalysisQueryVo analysisQueryVo);

    /**
     * 城市饼状图-结构类型-面积
     */
    List<Map> buildingCityAreaDataByStructureType(AnalysisQueryVo analysisQueryVo);

    /**
     * 农村饼状图-结构类型-面积
     */
    List<Map> buildingVillageAreaDataByStructureType(AnalysisQueryVo analysisQueryVo);


    /**
     * 饼状图-城镇住宅建造年代-栋数
     */
    List<Map> buildingNumCityByBuildingTime(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-城镇住宅建造年代-面积
     */
    List<Map> buildingAreaCityByBuildingTime(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-城镇非住宅建造年代-栋数
     */
    List<Map> buildingNumNoCityByBuildingTime(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-城镇非住宅建造年代-面积
     */
    List<Map> buildingAreaNoCityByBuildingTime(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村住宅建造年代-栋数
     */
    List<Map> buildingNumVillageByBuildingTime(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村住宅建造年代-面积
     */
    List<Map> buildingAreaVillageByBuildingTime(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村公共建筑建造年代-栋数
     */
    List<Map> buildingNumVillagePubByBuildingTime(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村公共建筑建造年代-面积
     */
    List<Map> buildingAreaVillagePubByBuildingTime(AnalysisQueryVo analysisQueryVo);



    /**
     * 饼状图-城镇住宅设防烈度-栋数
     */
    List<Map> buildingNumCityByFortificationIntensity(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-城镇住宅设防烈度-面积
     */
    List<Map> buildingAreaCityByFortificationIntensity(AnalysisQueryVo analysisQueryVo);
    /**
     * 饼状图-城镇非住宅设防烈度-栋数
     */
    List<Map> buildingNumNoCityByFortificationIntensity(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-城镇非住宅设防烈度-面积
     */
    List<Map> buildingAreaNoCityByFortificationIntensity(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村住宅设防烈度-栋数
     */
    List<Map> buildingNumVillageByFortificationIntensity(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村住宅设防烈度-面积
     */
    List<Map> buildingAreaVillageByFortificationIntensity(AnalysisQueryVo analysisQueryVo);
    /**
     * 饼状图-农村公共建筑设防烈度-栋数
     */
    List<Map> buildingNumVillagePubByFortificationIntensity(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村公共建筑设防烈度-面积
     */
    List<Map> buildingAreaVillagePubByFortificationIntensity(AnalysisQueryVo analysisQueryVo);
    /**
     * 饼状图-农村居住房屋抗震构造措施-栋数
     */
    List<Map> buildingNumVillageByHouseMeasures(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村居住房屋抗震构造措施-面积
     */
    List<Map> buildingAreaVillageByHouseMeasures(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村居住房屋曾受灾情况-栋数
     */
    List<Map> buildingNumVillageByOnceAffected(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村居住房屋曾受灾情况-面积
     */
    List<Map> buildingAreaVillageByOnceAffected(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-城镇住宅抗震设防（结论）情况统计-栋数
     */
    List<Map> buildingNumCityByResult(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-城镇住宅抗震设防（结论）情况统计-面积
     */
    List<Map> buildingAreaCityByResult(AnalysisQueryVo analysisQueryVo);

    /**
     * 城镇住宅是否存在安全隐患（有无明显可见的裂缝、变形、倾斜等）-栋数
     * @param analysisQueryVo
     * @return
     */
    List<Map> buildingNumCityByBuildingIsDamage(AnalysisQueryVo analysisQueryVo);

    /**
     * 城镇住宅是否存在安全隐患（有无明显可见的裂缝、变形、倾斜等）-面积
     * @param analysisQueryVo
     * @return
     */
    List<Map> buildingAreaCityByBuildingIsDamage(AnalysisQueryVo analysisQueryVo);
    /**
     * 饼状图-城镇非住宅抗震设防（结论）情况统计-栋数
     */
    List<Map> buildingNumNoCityByResult(AnalysisQueryVo analysisQueryVo);
    /**
     * 饼状图-城镇非住宅抗震设防（结论）情况统计-面积
     */
    List<Map> buildingAreaNoCityByResult(AnalysisQueryVo analysisQueryVo);

    /**
     * 城镇非住宅是否存在安全隐患（有无明显可见的裂缝、变形、倾斜等）-栋数
     * @param analysisQueryVo
     * @return
     */
    List<Map> buildingNumNoCityByBuildingIsDamage(AnalysisQueryVo analysisQueryVo);

    /**
     * 城镇非住宅是否存在安全隐患（有无明显可见的裂缝、变形、倾斜等）-面积
     * @param analysisQueryVo
     * @return
     */
    List<Map> buildingAreaNoCityByBuildingIsDamage(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村住宅抗震设防（结论）情况统计-栋数
     */
    List<Map> buildingNumVillageByResult(AnalysisQueryVo analysisQueryVo);
    /**
     * 饼状图-农村住宅抗震设防（结论）情况统计-面积
     */
    List<Map> buildingAreaVillageByResult(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村住宅安全隐患（有无明显可见的裂缝、变形、倾斜等）-栋数
     */
    List<Map> buildingNumVillageByBuildingIsDamage(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村住宅安全隐患（有无明显可见的裂缝、变形、倾斜等）-面积
     */
    List<Map> buildingAreaVillageByBuildingIsDamage(AnalysisQueryVo analysisQueryVo);
    /**
     * 饼状图-农村公共建筑抗震设防（结论）情况统计-栋数
     */
    List<Map> buildingNumVillagePubByResult(AnalysisQueryVo analysisQueryVo);
    /**
     * 饼状图-农村公共建筑抗震设防（结论）情况统计-面积
     */
    List<Map> buildingAreaVillagePubByResult(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村公共建筑安全隐患（有无明显可见的裂缝、变形、倾斜等）-栋数
     */
    List<Map> buildingNumVillagePubByBuildingIsDamage(AnalysisQueryVo analysisQueryVo);

    /**
     * 饼状图-农村公共建筑安全隐患（有无明显可见的裂缝、变形、倾斜等）-面积
     */
    List<Map> buildingAreaVillagePubByBuildingIsDamage(AnalysisQueryVo analysisQueryVo);
}
